Cloud computing is a rapidly growing area in which the Internet (i.e., the “cloud”) is used to deliver a variety of services to clients. That is, in cloud computing resources are provided as a service over the Internet in order to satisfy the computing needs of users. Examples of services that can be provided through a cloud are wide-reaching. Compute facilities provide computational services so that users can use central processing unit (CPU) cycles without buying computers. Storage services provide a way to store or backup data and documents without having to continually grow farms of storage networks and servers. Software as a service (SaaS) companies offer software that is owned, delivered, and managed remotely by one or more providers so users can manage their work without buying software. SaaS also allows a sharing of application processing and storage resources in a one-to-many environment, on a pay-for-use basis, or on a subscription basis.
Cloud-based computing offers a number of advantages over more traditional computing arrangements in which the applications and computing resources must be installed and run on the customer's own computer. For example, cloud computing can lower capital expenditures since the computing infrastructure can be largely owned (and maintained) by the provider and does not need to be purchased for one-time or infrequent but intensive computing tasks. In addition, users can access their applications and data from any location, independent of the device they are working on. Since applications and data can be stored and maintained on multiple redundant sites, reliability can be substantially increased.
As cloud services mature, more and more people rely on them for all sorts of day-to-day activities such as communicating with others, sharing files and photos, blogging, collaborating, organizing schedules with online calendars, entertainment, synchronizing data between devices, and online data storage. One problem that arises with this increasing demand is the escalating costs that are imposed on service providers as the amount of data they need to maintain grows, particularly since it is often necessary to maintain multiple copies of data in order to ensure reliability. In addition, users are increasingly expecting to be able to access their data in a variety of different forms and formats, and not simply in the form or format in which the data was originally stored.
This Background is provided to introduce a brief context for the Summary and Detailed Description that follow. This Background is not intended to be an aid in determining the scope of the claimed subject matter nor be viewed as limiting the claimed subject matter to implementations that solve any or all of the disadvantages or problems presented above.